package com.le.tester.book.effectivejava3rdchinese.secondReading.l55;

import java.util.Collection;
import java.util.Comparator;
import java.util.Optional;

/**
 * createTime：2024-10-16 10:04
 * description：使用Optional,慎重的使用Optional,不使用Optional的装箱机制
 */
public class Demo {

    public static <E extends Comparable<E>> Optional<E> max(Collection<E> c) {
//        if (c.isEmpty()) {
//            return Optional.empty();
//        }
//        E result = null;
//
//        for (E e : c) {
//            if (result == null || e.compareTo(result) > 0) {
//                result = Objects.requireNonNull(e);
//            }
//
//        }
//        return Optional.of(result);


        //stream，内部封装的最大值方法
        return c.stream().max(Comparator.naturalOrder());
    }
}
